package com.daxia.wx.dto;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;

/**
 * {{first.DATA}}
订单编号：{{keyword1.DATA}}
下单时间：{{keyword2.DATA}}
赠送状态：{{keyword3.DATA}}
接收人：{{keyword4.DATA}}
{{remark.DATA}}


例如：
推荐商家分润：
    您推荐的商家xxx分店完成了一笔订单交易，您获得分润 xxx元！
    订单编号：
    下单时间：
    赠送状态：已结算/未结算
    接收人：用户昵称
    待该笔订单结算后，可在个人中心->我的分润中领取分润！

买家分润：
    您刚在商家xxx分店完成了一笔订单交易，您获得分润xxx元！
    订单编号：
    下单时间：
    赠送状态：已结算/未结算
    接收人：用户昵称
    待该笔订单结算后，可在个人中心->我的分润中领取分润！


 */
public class WxShareProfitMesageTemplate extends WxMessageTemplate {
    private String title;
    private String orderNo;
    private Date orderTime;
    private String status;
    private String receiver;
    private String remark;
    
    @Override
    public String getTemplateId() {
        return "__THLH1hviCvydsHr-dSggxZGdGyLfYlkRjpXxcNNS4";
    }

    @Override
    public String toJson() {
        JSONObject json = new JSONObject();
        json.put("touser", getOpenid());
        json.put("template_id", getTemplateId());
        json.put("url", "");

        JSONObject data = new JSONObject();

        JSONObject first = new JSONObject();
        first.put("value", getTitle());
        //first.put("color", color);
        data.put("first", first);
    
        Map<String, String> keywordMap = new LinkedHashMap<String, String>();
        keywordMap.put("keyword1", getOrderNo());
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        keywordMap.put("keyword2", dateFormat.format(getOrderTime()));
        keywordMap.put("keyword3", getStatus());
        keywordMap.put("keyword4", getReceiver());
        for (String key : keywordMap.keySet()) {
            JSONObject keyword = new JSONObject();
            keyword.put("value", keywordMap.get(key));
            data.put(key, keyword);
        }
        data.put("remark", getRemark());

        json.put("data", data);
        
        return json.toJSONString();
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Date getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(Date orderTime) {
        this.orderTime = orderTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    
}
